package br.com.dufs.mvc.controller;

import java.awt.event.ActionEvent;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.transaction.SystemException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import br.com.dufs.mvc.model.Entrevistado;
import br.com.dufs.mvc.model.MaquiEquiTrab;
import br.com.dufs.mvc.service.EntrevistadoBOService;
import br.com.dufs.mvc.service.MaquiEquiTrabBOService;

@Controller
@Scope("view")
public class MaquiEquiTrabMB {

	private MaquiEquiTrab maquiEquiTrab;
	private DataModel<MaquiEquiTrab> listaMaqTrabEqui;

	private Entrevistado entrevistado;

	@Autowired
	private MaquiEquiTrabBOService maBoService;

	@Autowired
	EntrevistadoBOService entrevistadoBOService;

	@PostConstruct
	public void filmeSelecionado() throws SystemException {
		String id = (String) FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap().get("id");

		this.maquiEquiTrab = new MaquiEquiTrab();

		if (id != null) {
			this.entrevistado = entrevistadoBOService.pesquisarPorId(id);

		}
	}

	public DataModel<MaquiEquiTrab> getListar() {
		List<MaquiEquiTrab> lista = maBoService.listaPorCPF(entrevistado
				.getCpf());

		listaMaqTrabEqui = new ListDataModel<MaquiEquiTrab>(lista);
		return listaMaqTrabEqui;
	}

	public void prepararAdicionar(ActionEvent actionEvent) {
		this.maquiEquiTrab = new MaquiEquiTrab();
	}

	public void prepararAlterar(ActionEvent actionEvent) {
		this.maquiEquiTrab = (MaquiEquiTrab) (this.listaMaqTrabEqui
				.getRowData());
	}

	public MaquiEquiTrab getMaquiEquiTrab() {
		return maquiEquiTrab;
	}

	public void setMaquiEquiTrab(MaquiEquiTrab maquiEquiTrab) {
		this.maquiEquiTrab = maquiEquiTrab;
	}

	public void excluir() {
		MaquiEquiTrab maqTemp = (MaquiEquiTrab) (this.listaMaqTrabEqui
				.getRowData());

		maBoService.excluir(maqTemp);
	}

	public void adicionar() throws SystemException {
		this.maquiEquiTrab.setEntrevistado(entrevistado);
		maBoService.salvar(maquiEquiTrab);
		this.maquiEquiTrab = null;
		this.maquiEquiTrab = new MaquiEquiTrab();

	}

	public Entrevistado getEntrevistado() {
		return entrevistado;
	}

	public void setEntrevistado(Entrevistado entrevistado) {
		this.entrevistado = entrevistado;
	}

}
